The invention relates generally to business processes and more specifically to a method and apparatus for querying the status of business process objects in a time-based manner.
It is well known to automate various business systems, such as Customer Relations Management (CRM), Enterprise Resource Planning (ERP), accounting, inventory control, order processing and other systems. Historically, such systems were each handled by dedicated software applications that did not integrate well with each other. Early software applications for automating business systems were designed to run independently, with no interaction between various systems. Such applications were custom built for a specific need being addressed and often utilized proprietary protocols. Dedicated xe2x80x9cpoint to pointxe2x80x9d connections were developed to permit each such system to communicate with another such system. For example, an inventory control system may exchange data with an accounting system through a customized software interface. However, as the number of systems increases, the quantity and complexity of point to point connections also increase. Further, point to point connections are rather inflexible and do not facilitate reconfigurations of systems to accommodate changing business models.
The concept of xe2x80x9cEnterprise Application Integrationxe2x80x9d (EAI) refers to the sharing of data throughout applications and data sources in an organization. As enterprises grow and require increased flexibility of data sharing throughout various systems, EAI is used to streamline processes and keep all the elements of the enterprise interconnected. EAI can include database linking, application linking, and data warehousing.
Various systems for accomplishing EAI are well known. For example, Service Oriented Architectures (SOA), in which a common set of services are exposed by different layers, are known. Also, Event Oriented Architectures (EOA) in which a publish/subscribe messaging system is used to change the states of activities based on events, is known. Further, standard connectivity protocols and message formats such as Remote Method Invocation (RMI) and extensible Markup Language (XML) have been established to facilitate EAI.
The concept of xe2x80x9cvalue chains,xe2x80x9d i.e., a series of business activities that create value, has become a useful paradigm for analyzing and improving the efficiency of businesses. Such activities include business processes, such as order entry, shipping, invoicing, and the like. Value chains are dependent on the internal business processes of a company, the business processes of trading partners, such as suppliers, and the relationship between the company and trading partners. It has become popular to experiment with and change value chains to optimize efficiency and profitability. Such change requires reconfiguration of business systems and the integration therebetween. EAI has facilitated such reconfiguration of business systems.
It is also known to provide an object oriented environment for modeling and configuring the above-described integration of various applications in a graphical manner to further facilitate configuration and reconfiguration of business systems. For example, the BusinessWare(trademark) modeling environment sold by Vitria(trademark) Technology, Inc. permits modeling of the integration of applications in a graphical manner by using xe2x80x9cbusiness process models,xe2x80x9d a technique becoming known as xe2x80x9cbusiness process managementxe2x80x9d (BPM). Business process models are state machines that model business processes at a semantic level and define an executable specification for the underlying business logic. Each business process model defines plural states and transitions required to move between states. An executing instance of a business process model is known as a xe2x80x9cbusiness process object.xe2x80x9d Business process models can be represented graphically and configured and manipulated in a graphical environment, such as BusinessWare(trademark).
Of course, it is desirable to make business process information available for analysis. Typically information relating to business processes should be available to persons with many different needs. For example, a wholesale business may order goods from many different manufacturers, warehouse the goods at different places (often in different environments), receive orders arriving at many different times from plural customers, receive payments in plural forms, ship products to customers using plural shipping channels, and track accounts relating to suppliers and customers. The information relating to these business processes that is useful to a shipping clerk may be entirely different from information relating to the same business processes that is useful to a warehouse supervisor, a purchasing agent, or an accountant.
These various personnel typically obtain the information that they require by searching for that information in a relational database. A relational database stores historical data in multiple tables in the long term memory of a computer. Personnel typically enter the data from summations into computer displayed forms provided by the database program. The database program stores the data entered in the appropriate tables. Each table includes rows of records with many different fields each holding information defining the record. The different tables in a relational database often have one or more fields which are identical to fields in other tables and provide a link by which data in one table may be related to data in another table.
When an automated process, employee or other authorized person desires information to carry out a particular job, the person or process directs a query to the database. A query causes the software to select information from one or a number of different tables, often to manipulate that information in some manner, and to return the results of the query. A query allows an employee to provide very complicated criteria to the database accessing software. The response to a query can thus include results from very sophisticated manipulations of historical data relating to business processes.
Queries to a typical database may be devised to provide the particular information that each individual person or group of persons needs. Because queries customized, hundreds and often thousands of different individual queries are likely to be submitted continuously to a database in a large business. Each time a person or automated process needs information from a database on which to base a decision, a new query must be submitted even though the query may be identical to a query previously submitted. Each individual query is run to completion by the computer executing the database software. As a business grows larger, queries tend to occupy more and more of the time available to the computer running the database. In fact, a large relational database may often become unable to respond effectively to the business queries it receives.
Although many business operations are satisfied by the historical data provided by a typical relational database and are able to cope with slow access speeds, there are any number of business processes which only function optimally if those making decisions about the processes are provided immediately with information related to the operation and status of business processes. Manufacturing processes are typical of operations which require real-time monitoring. Manufacturing processes are often handled by computer systems dedicated to the individual processes to avoid the above-noted problems associated with the use of an enterprise wide relational database system. Many other business processes benefit greatly if business decisions can be made in real time in response to real-time events. For example, if a business furnishes trucks to pick up the goods it purchases, a last minute change in the quantity or character of items which have been purchased may require a larger truck and the additional expense of an extra trip if not discovered before a first truck has been dispatched. The availability of real-time information can significantly affect the profitability and responsiveness of a business. Further, it has become popular to provide guaranteed minimal levels of service through service level agreements. Ideally, service levels of business processes must be monitored in real time to enforce service level agreements and take corrective or remedial action when a minimum service level has been violated.
As noted above, a typical relational database is not suited to produce up-to-date results from continually changing data because a database usually contains only historical data. Consequently, the entire design of databases has been organized to optimize the processes by which the many tables of large databases are searched in response to individual queries devised to provide this historical data to users and processes. Although relational databases have some functions which allow responses to real-time events, these functions are so limited in nature that they do not provide a useful solution where real-time decisions are necessary.
For example, some databases provide what are referred to as xe2x80x9ctriggers.xe2x80x9d A trigger can be coded into the software to execute a process in response to some change which occurs to some data in the database. Such a process must be precoded into the software and is not flexible to suit changing circumstances, such as a change in the value chain or service level agreement. Moreover, trigger processes cannot be used on a large scale to respond to real-time events. A trigger process runs serially like other processes on the computer. Consequently, if constantly occurring trigger processes were to be used for a variety of purposes, the entire database would simply slow to a halt. Further, database triggers are executed in response to changes made in the relational database data and are not automatically reevaluated based on the passage of time.
Another type of system for providing information is referred to as an event service. A method used by event service systems to respond to real-time events involves what are called filters or event processing. Filters are used to look for the occurrence of events which meet particular criteria. However, filters used by prior art event services are able to respond only to criteria which exist in the event itself and cannot provide more sophisticated functions. For example, if an event indicates that a package is arriving from a manufacturer containing an amount of some goods, only the data actually in the event can be utilized by the filter. The manufacturer, the goods, the amount of goods, and the time of arrival can be provided to persons interested in the results of the filter, but no other information already in any database can be associated with the event data by the filter. None of the sophisticated processes available to a database such as relating values in different tables which pertain to the package can be carried out. No historical data related to the manufacturer, the goods, or the amounts of the goods can be determined. Thus, a filter could not be used to determine whether an additional truck was necessary in the previously-mentioned case because historical data could not be combined with event data by an event service. There are at present no systems for providing immediate results to multi-dimensional sophisticated queries for business process events occurring in real time.
An object of the invention is to improve the access to business process data. In order to achieve this and other objects, a first aspect of the invention is a method for monitoring a business process model in which at least one business process object transitions between states. The method comprises defining a process query having at least one state for the business process object and at least one time-based condition, applying the process query to business process objects that have changed, publishing events when the results of a query are different from results of a previous query, and sending the events to a target process.
A second aspect of the invention is a computer architecture for monitoring a business process model in which at least one business process object transitions between states. The architecture comprises an execution engine configured to execute business process models, and an analyzer engine configured to monitor changes of business process objects effected by the execution engine. The analyzer engine applies one or more queries to the collection and outputs events based on time-based conditions of the queries.
A third aspect of the invention is a computer readable media containing instructions for operation of a computer. The instructions comprise instructions for monitoring a business process model in which at least one business process object transitions between states, instructions for defining a process query having at least one state for the business process object and at least one time-based condition, instructions for applying the process query to the business process objects that have changed, instructions for publishing events when the results of executing the instructions for applying the process query are different from results of a previous execution of the instructions for applying the process query, and instructions for sending the events to a target process.